package accesoRepositorio;

import interfacesRemotas.*;

import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
import java.sql.SQLException;
import java.util.LinkedList;
import java.util.List;

/**
 * Clase que gestiona los datos de la tabla Observaciones de la base de datos
 * @author Carmen Pastor
 * @version 1.0
 * @created 5/may/2007
 *
 */
public class AccesoObservaciones extends UnicastRemoteObject implements InterfazObservaciones 
{
	/**
	 * 
	 */
	private static final long serialVersionUID = 3801019147007896923L;
	private String texto;
	
	/**
	 * Constructor de la clase
	 * @throws RemoteException
	 */
	public AccesoObservaciones() throws RemoteException
	{
		super();
	}

	public String getTexto() throws RemoteException
	{
		return texto;
	}

	public void setTexto(String texto) throws RemoteException
	{
		this.texto = texto;
	}

	/**
	 * Recupera todas las observaciones de la base de datos
	 * @return Lista de Observaciones
	 * @throws RemoteException
	 */
	public List<String> getObservaciones() throws RemoteException
	{
		ConexionBD bd=new ConexionBD();
		java.sql.ResultSet rs;
		List<String> lista=new LinkedList<String>();
		if(!bd.abrir())
			return null;
		
		rs=bd.select("SELECT texto FROM Observaciones;");
		if(rs==null)
		{
			bd.cerrar();
			return null;
		}
		try {
			while(rs.next())
				{
				String texto=rs.getString(1);
				lista.add(texto);
				}
		} catch (SQLException e) {
			System.err.println("Error en AccesoObservaciones al recuperar el texto de las observaciones: "+e.getMessage());
			bd.cerrar();
			return null;
		}
		
		bd.cerrar();
		return lista;
	}
	
	/**
	 * Introduce una nueva observacion en la Base de datos
	 * @param observacion
	 * @return Cierto si se guardan correctamente
	 */
	public boolean insertObservacion(String observacion) throws RemoteException
	{
		ConexionBD bd=new ConexionBD();	
		boolean insertada=false;
		if(!bd.abrir())
			return false;
		insertada=bd.insert("UPDATE Observaciones SET texto='"+observacion+"';");
		bd.cerrar();
		return insertada;
	}
}

